package jcworks;
import java.util.ArrayList;

public class Logikai_elemek extends Epitoelemek {

        protected ArrayList<Drot> drotokKimenetCimei = new ArrayList<Drot>();
        protected ArrayList<Drot> drotokBemenetCimei = new ArrayList<Drot>();

	private int szint=0;

	protected boolean funkcio() {
            //if(Vezerlo.konzolnaplozas) Vezerlo.naplozas(Integer.toString(azonosito)+". azonositoju " + this.getClass() + " - funkcio");
            return false;
		
	}

	public void bokes() {
            //if(Vezerlo.konzolnaplozas) Vezerlo.naplozas(Integer.toString(azonosito)+". azonositoju " + this.getClass() + " - bokes");
            for (int i=0; i<drotokKimenetCimei.size(); i++)
            {               
                drotokKimenetCimei.get(i).setAllapot(this.funkcio());
            }
		
	}

        public void setDrotCim(Drot drotCim, boolean irany) { //irany=1 akkor be, 0 akkor ki
            //if(Vezerlo.konzolnaplozas) Vezerlo.naplozas(Integer.toString(azonosito)+". azonositoju " + this.getClass() + " - setDrotCim");
            if(irany == true)
            {
                drotokBemenetCimei.add(drotCim);
                if(Vezerlo.konzolnaplozas)
                    Vezerlo.naplozas("Letrejott egy drot a(z) " + Integer.toString(drotCim.getBemenetiCim().azonosito)
                            + ". azonositoju elem es a(z) " + Integer.toString(azonosito) + ". azonositoju elem kozott");
            }
            else
                drotokKimenetCimei.add(drotCim);

            //szintet szamol.
            //saját magától ne kérje le a szintet
            for (int i=0; i<drotokBemenetCimei.size(); i++)
            {
                if(azonosito!=drotokBemenetCimei.get(i).getBemenetiCim().azonosito) //Visszacsatolást ellenőrzöm
                if ((drotokBemenetCimei.get(i).getSzint() +1)>szint)
                    szint=(drotokBemenetCimei.get(i).getSzint() +1);
            }
           
        }
        public int getSzint() {
            //if(Vezerlo.konzolnaplozas) Vezerlo.naplozas(Integer.toString(azonosito)+". azonositoju " + this.getClass() + " logikai elem szintje lekeresre kerult. A visszaadott szint: " + szint);

            return szint;
           
        }
		
	
}